'''
面向过程的编程思想
    核心过程二字,过程指的是解决问题的步骤,即先干什么\再干什么\后干什么
    基于该思想编写程序就好比在设计一条流水线,是一种机械式的思维方式
    优点:复杂的问题流程化\进而简单化 （一步步去思考，写一步走一步）
    缺点:可扩展性差
        （加一点参数或者方法可能改掉原来的代码，
    一套流水线或者流程就是用来解决一个问题，生产汽水的流水线无法生产汽车，
    即便是能，也得是大改，改一个组件，牵一发而动全身。）
        就像打工自己需要技术，学历，工作经验等等
        老板或者领导把事情安排好就ok了，员工只需要照着去做，能赚钱就OK
面向对象的编程思想
    核心是对象二个字,对象是特征与技能的结合体
    基于该思想编写程序(脑子始终想的是对象二字)就好比在创造一个世界,世界是由
    一个个对象组成,在上帝眼里任何存在的事物都是对象,任何不存在的事物也都可以造
    出来,是一种上帝式的思维方式
    优点: 可扩展性强 (比如:加属性加方法，有框架体系
    对某一个对象单独修改，会立刻反映到整个体系中，
    如对游戏中一个人物参数的特征和技能修改都很容易。)
    缺点: 编程的复杂度要高与面向过程
     (难度高，要看应用场景
    面向对象的程序设计看起来高大上，所以我在编程时就应该保证通篇类，
    这样写出的程序一定是好的程序（面向对象只适合那些可扩展性要求比较高的场景）
    比如，假设大海老师会降龙十八掌的十八掌，那么我每次跟人干仗都要从第一掌打到
    第18掌降龙有悔
    这才显得我很牛逼：
    面对敌人，我打到第三掌对方就已经倒下了，我说，不行，你给我起来，我还没有show完..
    3.类有类属性，实例有实例属性，所以我们在定义class时一定要定义出那么几个类属性，
    想不到怎么办，那就使劲的想，定义的越多越牛逼
    这就犯了一个严重的错误，程序越早面向对象，死的越早，为啥面向对象，
        因为我们要将数据与功能结合到一起，程序整体的结构都没有出来，
        或者说需要考虑的问题你都没有搞清楚个八九不离十，你就开始面向对象了，
        这就导致了，你在那里干想，自以为想通了，定义了一堆属性，结果后来又都用不到，
        或者想不通到底应该定义啥，那就一直想吧，想着想着就疯了。
    就像创业：
        自己不太需要技术能力，只需要懂那些人拥有这些能力，因为我有钱
        自己需要规划好创业的每一步，
        招聘的时候人才的选择
        技术
        销售
        门面的选择
类:
    对象是特征与技能的结合体,而类则是一系列对象相同的特征与技能的结合体
    强调:
        1.对象是具体存在的事物,而类则一个抽象的概念
        2.站在不同的角度总结出的类与对象是不同的
    在现实世界中:先有一个个具体存在的对象,然后随着人类文明的发展才总结出类的概念
'''